<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>

        /**
        ** 函数优化
        **/

        //在ES6以前，我们无法给一个函数参数设置默认值，只能采用变通写法：
        function add(a, b) {
            // 判断b是否为空，为空就给默认值1
            b = b || 1;
            return a + b;
        }
        // 传一个参数
        console.log(add(10));


        //现在可以这么写：直接给参数写上默认值，没传就会自动使用默认值
        function add2(a, b = 1) {
            return a + b;
        }
        console.log(add2(20));

        // 不定参数
        function func1(...values) {
            console.info(values.length);
        }

        func1(1, 2, 3, 4);

        // 箭头函数，单个参数
        let func2 = obj => console.info(obj);
        func2("func2");

        // 箭头函数，多个参数
        let func3 = (a, b) => a + b;
        console.info(func3(6, 20));

        // 箭头函数，多个执行语句
        let func4 = (a, b) => { let c = a + 10; return b + c };
        console.info(func4(6, 20));

        // 箭头函数，+ 解构语法
        const person = { name: "zhangsan ", age: 18, languge: ['js', 'java', 'json'] };
        let func5 = (obj) => { console.info("hello,",obj.name) };
        func5(person);

        let func6 = ({name}) => { console.info("hello,",name) };
        func5(person);

    </script>
</body>

</html>